#ifndef _QUEUE_H
#define _QUEUE_H

Queue InitQueue();              // 创建队
int Empty(Queue q);             // 如果队列为空返回true，否则返回false
int Size(Queue q);              // 返回队列中元素的个数
int Pop(Queue &q);              // 删除队列首元素但不返回其值
int Push(Queue &q, DataType x); // 在队尾压入新元素
DataType Front(Queue q);        // 返回队首元素的值，但不删除该元素
DataType Back(Queue q);         // 返回队列尾元素的值，但不删除该元素
void printf(Queue q);           // 打印队列

// template
// Queue InitQueue()
// {
// }
// int Empty(Queue q)
// {
// }
// int Size(Queue q)
// {
// }
// int Pop(Queue &q)
// {
// }
// int Push(Queue &q, DataType x)
// {
// }
// DataType Front(Queue q)
// {
// }
// DataType Back(Queue q)
// {
// }
// void printf(Queue q)
// {
// }

#endif